﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Maestro_Proveedores.Forms
{
    public partial class ConsultarOrdenesCompra : Form
    {
        MAPICS.MAPICSDataSetTableAdapters.INF_OC_DETALLADATableAdapter inf_OC_DETALLADATableAdapter = new MAPICS.MAPICSDataSetTableAdapters.INF_OC_DETALLADATableAdapter();

        public ConsultarOrdenesCompra()
        {
            InitializeComponent();
        }

        public static string TIPO = "137";

        private void eVALUARbutton_Click(object sender, EventArgs e)
        {
            Cursor.Current = Cursors.WaitCursor;
            try
            {
                this._Maestro_Proveedores_CORPORATIVADataSet.Vencimiento_OC.Clear();
                if (AnalistaRadioButton.Checked)
                {
                    if (this.Analistacmb.Text.Equals("Todos"))
                    {
                        inf_OC_DETALLADATableAdapter.FillByTodos(this.mapicsDataSet.INF_OC_DETALLADA);
                    }
                    else
                    {
                        if (!this.Analistacmb.Text.Equals("Seleccione un dato") && this.Analistacmb.Text != string.Empty)
                            inf_OC_DETALLADATableAdapter.FillByTodos(this.mapicsDataSet.INF_OC_DETALLADA);
                        //inf_OC_DETALLADATableAdapter.FillByComprador(this.mapicsDataSet.INF_OC_DETALLADA, this.Analistacmb.Text.Trim());
                        else
                            MessageBox.Show("Debe seleccionar o escribir el nombre del analista a consultar");
                    }
                }
                else
                {
                    inf_OC_DETALLADATableAdapter.FillByOrdenCompra(this.mapicsDataSet.INF_OC_DETALLADA, this.OrdenCompratextBox.Text.Trim());
                }

                this.progressBar.Value = 0;
                this.progressBar.Maximum = this.mapicsDataSet.INF_OC_DETALLADA.Count;
                foreach (MAPICS.MAPICSDataSet.INF_OC_DETALLADARow inf_OC_DETALLADARow in this.mapicsDataSet.INF_OC_DETALLADA)
                {
                    string requirimiento = string.Empty;
                    if (!inf_OC_DETALLADARow.IsREQUISICIONNull())
                        requirimiento = inf_OC_DETALLADARow.REQUISICION;
                    string can_sol = string.Empty;
                    if (!inf_OC_DETALLADARow.IsCAN_SOLNull())
                        can_sol = inf_OC_DETALLADARow.CAN_SOL.ToString();
                    string fecharequerimiento = string.Empty;
                    if (!inf_OC_DETALLADARow.IsFECHA_REQ_REQNull() && inf_OC_DETALLADARow.FECHA_REQ_REQ.ToString().Length == 7)
                        fecharequerimiento = inf_OC_DETALLADARow.FECHA_REQ_REQ.ToString();
                    else
                        fecharequerimiento = MAESTROS.ClassVarios.FechaMAPIC(DateTime.Parse("01/01/1900"));

                    if (AnalistaRadioButton.Checked)
                    {
                        if (!this.Analistacmb.Text.Equals("Todos"))
                        {
                            if (!inf_OC_DETALLADARow.COMPRADOR.Trim().Equals(this.Analistacmb.Text))
                            {
                                this.progressBar.Value++;
                                continue;
                            }
                        }
                    }

                    double dias = 0;
                    if (inf_OC_DETALLADARow.FECHA_ENTR_R > 0)
                    {
                        DateTime fecRequerida = MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA_ENTR_R.ToString());
                        DateTime fecConsulta = this.fechaConsulta.Value.Date;
                        dias = MAESTROS.ClassVarios.TotalDias(fecConsulta, fecRequerida);

                        if (inf_OC_DETALLADARow.FECHA_REC == 0)
                        {
                            if (dias < 0)
                            // Ordenes Vencidas
                            {
                                this._Maestro_Proveedores_CORPORATIVADataSet.Vencimiento_OC.AddVencimiento_OCRow(inf_OC_DETALLADARow.COD_OC.Trim(), inf_OC_DETALLADARow.COD_ITEM, inf_OC_DETALLADARow.DESC_ITEM.Trim(), can_sol, inf_OC_DETALLADARow.VALOR_TOTAL, MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA.ToString()), MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA_ENTR_R.ToString()), DateTime.Now, "Vencidas", (int)dias, inf_OC_DETALLADARow.COMPRADOR.Trim(), inf_OC_DETALLADARow.COD_PRV.Trim(), inf_OC_DETALLADARow.ESTADO_OC.Trim(), inf_OC_DETALLADARow.ESTADO_ART.Trim(), inf_OC_DETALLADARow.ALMACEN.Trim(), requirimiento, MAESTROS.ClassVarios.FechaMAPIC(fecharequerimiento));
                            }
                            else
                            // Ordenes por vencer
                            {
                                this._Maestro_Proveedores_CORPORATIVADataSet.Vencimiento_OC.AddVencimiento_OCRow(inf_OC_DETALLADARow.COD_OC.Trim(), inf_OC_DETALLADARow.COD_ITEM, inf_OC_DETALLADARow.DESC_ITEM.Trim(), can_sol, inf_OC_DETALLADARow.VALOR_TOTAL, MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA.ToString()), MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA_ENTR_R.ToString()), DateTime.Now, "A Vencer", (int)dias, inf_OC_DETALLADARow.COMPRADOR.Trim(), inf_OC_DETALLADARow.COD_PRV.Trim(), inf_OC_DETALLADARow.ESTADO_OC.Trim(), inf_OC_DETALLADARow.ESTADO_ART.Trim(), inf_OC_DETALLADARow.ALMACEN.Trim(), requirimiento, MAESTROS.ClassVarios.FechaMAPIC(fecharequerimiento));
                            }
                        }
                        else
                        {
                            dias = MAESTROS.ClassVarios.TotalDias(MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA_ENTR_R.ToString()), MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA_REC.ToString()));
                            this._Maestro_Proveedores_CORPORATIVADataSet.Vencimiento_OC.AddVencimiento_OCRow(inf_OC_DETALLADARow.COD_OC.Trim(), inf_OC_DETALLADARow.COD_ITEM, inf_OC_DETALLADARow.DESC_ITEM.Trim(), can_sol, inf_OC_DETALLADARow.VALOR_TOTAL, MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA.ToString()), MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA_REC.ToString()), MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA_REC.ToString()), "Recibido", (int)dias, inf_OC_DETALLADARow.COMPRADOR.Trim(), inf_OC_DETALLADARow.COD_PRV.Trim(), inf_OC_DETALLADARow.ESTADO_OC.Trim(), inf_OC_DETALLADARow.ESTADO_ART.Trim(), inf_OC_DETALLADARow.ALMACEN.Trim(), requirimiento, MAESTROS.ClassVarios.FechaMAPIC(fecharequerimiento));
                        }
                    }
                    else
                    //Ordenes sin fecha requerida
                    {
                        if (inf_OC_DETALLADARow.FECHA_REC == 0)
                        {
                            this._Maestro_Proveedores_CORPORATIVADataSet.Vencimiento_OC.AddVencimiento_OCRow(inf_OC_DETALLADARow.COD_OC.Trim(), inf_OC_DETALLADARow.COD_ITEM, inf_OC_DETALLADARow.DESC_ITEM.Trim(), can_sol, inf_OC_DETALLADARow.VALOR_TOTAL, MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA.ToString()), this.fechaConsulta.Value.Date, DateTime.Now, "Sin_Fecha", 0, inf_OC_DETALLADARow.COMPRADOR.Trim(), inf_OC_DETALLADARow.COD_PRV.Trim(), inf_OC_DETALLADARow.ESTADO_OC.Trim(), inf_OC_DETALLADARow.ESTADO_ART.Trim(), inf_OC_DETALLADARow.ALMACEN.Trim(), requirimiento, MAESTROS.ClassVarios.FechaMAPIC(fecharequerimiento));
                        }
                        else
                        {
                            dias = MAESTROS.ClassVarios.TotalDias(MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA.ToString()), MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA_REC.ToString()));
                            Maestro_Proveedores._Maestro_Proveedores_CORPORATIVADataSet.Vencimiento_OCRow vencimiento_OCRow = this._Maestro_Proveedores_CORPORATIVADataSet.Vencimiento_OC.NewVencimiento_OCRow();
                            vencimiento_OCRow.ItemArray = new object[]{
                                inf_OC_DETALLADARow.COD_OC.Trim(), 
                                inf_OC_DETALLADARow.COD_ITEM, 
                                inf_OC_DETALLADARow.DESC_ITEM.Trim(), 
                                can_sol, 
                                inf_OC_DETALLADARow.VALOR_TOTAL, 
                                MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA.ToString()), 
                                null, 
                                MAESTROS.ClassVarios.FechaMAPIC(inf_OC_DETALLADARow.FECHA_REC.ToString()), 
                                "Recibido", 
                                (int)dias, 
                                inf_OC_DETALLADARow.COMPRADOR.Trim(), 
                                inf_OC_DETALLADARow.COD_PRV.Trim(),
                                inf_OC_DETALLADARow.ESTADO_OC.Trim(),
                                inf_OC_DETALLADARow.ESTADO_ART.Trim(), 
                                inf_OC_DETALLADARow.ALMACEN.Trim(),
                                requirimiento,
                                MAESTROS.ClassVarios.FechaMAPIC(fecharequerimiento)};
                            this._Maestro_Proveedores_CORPORATIVADataSet.Vencimiento_OC.AddVencimiento_OCRow(vencimiento_OCRow);
                        }
                    }
                    this.progressBar.Value++;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                Cursor.Current = Cursors.Default;
            }
        }

        private void eXCELLtoolStripButton_Click(object sender, EventArgs e)
        {
            if (this.vencimiento_OCDataGridViewVencidas.RowCount > 0)
                Exportacion.Exportacion.exportar(Exportacion.Exportacion.EnumTipoFormatosExportar.XLS, this.vencimiento_OCDataGridViewVencidas, "vencimiento OC Vencidas(" + DateTime.Now.ToShortDateString().Replace("/", "-") + ")", true);
            else
                MessageBox.Show("NO HAY vencimiento OC Vencidas");
        }

        private void eXCELLpORvENCERtoolStripButton_Click(object sender, EventArgs e)
        {
            if (this.vencimiento_OCDataGridViewVencer.RowCount > 0)
                Exportacion.Exportacion.exportar(Exportacion.Exportacion.EnumTipoFormatosExportar.XLS, this.vencimiento_OCDataGridViewVencer, "vencimiento OC Por Vencer(" + DateTime.Now.ToShortDateString().Replace("/", "-") + ")", true);
            else
                MessageBox.Show("NO HAY vencimiento OC Por Vencer");
        }

        private void sINfECHAtoolStripButton_Click(object sender, EventArgs e)
        {
            if (this.vencimiento_OCDataGridViewSinfecha.RowCount > 0)
                Exportacion.Exportacion.exportar(Exportacion.Exportacion.EnumTipoFormatosExportar.XLS, this.vencimiento_OCDataGridViewSinfecha, "vencimiento OC Sinfecha" + DateTime.Now.ToShortDateString().Replace("/", "-") + ")", true);
            else
                MessageBox.Show("NO HAY vencimiento OC Sinfecha");
        }

        private void eXCELLeNTREGADOStoolStripButton_Click(object sender, EventArgs e)
        {
            if (this.vencimiento_OCDataGridViewEntregados.RowCount > 0)
                Exportacion.Exportacion.exportar(Exportacion.Exportacion.EnumTipoFormatosExportar.XLS, this.vencimiento_OCDataGridViewEntregados, "vencimiento OC Entregados(" + DateTime.Now.ToShortDateString().Replace("/", "-") + ")", true);
            else
                MessageBox.Show("NO HAY vencimiento OC Entregados");
        }

        private void ConsultarOrdenesCompra_Load(object sender, EventArgs e)
        {

        }

        private void eXCELsERVICIOtoolStripButton_Click(object sender, EventArgs e)
        {
            if (this.vencimiento_OCDataGridViewServicios.RowCount > 0)
                Exportacion.Exportacion.exportar(Exportacion.Exportacion.EnumTipoFormatosExportar.XLS, this.vencimiento_OCDataGridViewServicios, "vencimiento OC Servicios(" + DateTime.Now.ToShortDateString().Replace("/", "-") + ")", true);
            else
                MessageBox.Show("NO HAY vencimiento OC Servicios");
        }

        private void vencimiento_OCDataGridViewServicios_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }


    }
}
